<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <script>
    /*
      数组常用方法4

      1. concat()
        + 拼接数组
        + 语法: 数组.concat(数组2, 数据, 数组3)
        + 作用: 把所有参数内的数组或者数据追加到原始数组的最后面, 如果参数是数组, 那么拆开追加
        + 返回值: 拼接好的数组
        + 注意: 不会改变原始数组

      2. join()
        + 连接数组
        + 语法: 数组.join(连接符号)
          => 连接符号如果不写, 默认使用 ','
        + 作用: 把数组内每一项使用连接符号连接为一个字符串
        + 返回值: 是一个字符串类型
        + 注意: 不会改变原始数组

      3. slice()
        + 截取数组
        + 语法: 数组.slice(开始索引, 结束索引)
          => 特点: 包前不包后
          => 特点2: 可以写负整数, 就是倒数第几个. 等价于 length + 负整数
          => 开始索引不填写, 默认是 0
          => 结束索引不填写, 默认是 length
        + 返回值: 一个新的数组
          => 里面存放的就是你截取出来的内容
        + 注意: 不会改变原始数组

      4. indexOf()
        + 语法:
          => 数组.indexOf(要查找的数据)
          => 数组.indexOf(要查找的数据, 开始索引)
        + 返回值:
          => 从前向后检索, 检索第一个满足要求的数据
          => 返回第一个满足要求的数据的索引位置
          => 如果有这个数据, 返回索引位置
          => 如果没有这个数据, 返回 -1

      5. lastIndexOf()
        + 语法:
          => 数组.lastIndexOf(要查找的数据)
          => 数组.lastIndexOf(要查找的数据, 开始索引)
        + 返回值:
          => 从后向前检索, 检索第一个满足要求的数据
          => 返回第一个满足要求的数据的索引位置
          => 如果有这个数据, 返回索引位置
          => 如果没有这个数据, 返回 -1
    */

    // 1. concat()
    // var arr = [ 10, 20, 30 ]
    // console.log(arr)
    // var a2 = [ 40, 50, 60 ]
    // var a3 = [ 70, 80, 90 ]
    // var res = arr.concat(a2, a3)
    // console.log(arr)
    // console.log(res)

    // 2. join()
    // var arr = [ 2022, 2, 28 ]
    // console.log(arr)
    // var res = arr.join('^_^')
    // console.log(arr)
    // console.log(res)
    // console.log(typeof res)

    // 3. slice()
    // var arr = [ 10, 20, 30, 40, 50, 60, [70] ]
    // //          0   1   2   3   4   5
    // console.log('原始数组 : ', arr)
    // // 从 [2] 截取到 [5], 包含 [2] 不包含 [5]
    // // var res = arr.slice(2, 5)
    // // 从 [1] 截取到 [-1], 这里的 [-1] 等价于 arr.length + -1
    // // var res = arr.slice(1, -1)
    // var res = arr.slice()
    // console.log(arr)
    // console.log('返回值 : ', res)

    // arr[2] = '修改一下'
    // console.log(arr)
    // console.log(res)


    // 4. indexOf()
    // var arr = [ 10, 20, 30, 20, 10, 20, 30 ]
    // console.log('原始数组 : ', arr)
    // // var res = arr.indexOf(20)
    // // 从 [2] 位置开始向后检索
    // var res = arr.indexOf(20, 2)
    // console.log(res)

    // 5. lastIndexOf()
    // var arr = [ 10, 20, 30, 20, 10, 20, 30 ]
    // console.log(arr)
    // var res = arr.lastIndexOf(20)
    // 从 [4] 位置开始向前查找
    // var res = arr.lastIndexOf(20, 4)
    // console.log(res)

  </script>
</body>
</html>
